1. Field of the Invention
The present invention relates to continuous data protection, and more particularly to a method for a system or a file backup where the backup file is stored on the same data storage while the backup data blocks are protected from modification by the system or by the user.
2. Background Art
Currently, there are a number of conventional methods that relate to organization of data archiving and protection. One of these methods is a backup of the entire hard drive, which typically involves copying of the hard drive contents onto some other medium (such as, for example, another hard disk drive, a DVD ROM, a DVD RAM, a flash disk, etc.). However, the other medium is not always available.
Typically, a full backup of a hard drive does not include empty disk sectors, since these sector do not contain any data that need to be copied. Instead, the empty data blocks or sectors can be marked in the backup bitmap that can be stored together with the storage backup. Thus, the backup takes up less space.
Drivers of the operating system are not used to create a bitmap. Rather, the storage medium (for example, a disk drive) is read directly, the file system structure is identified, and the data blocks that are being used are identified. It should be noted that although a bitmap is typically created on a data block level, it is possible that the bitmap generation procedure is related to a file system reflection into block space of the storage device, and considers only unused blocks (rather than empty blocks).
Then the data blocks that are being used are tagged with, for example, a “1” in the bitmap, and the unused blocks are tagged as “0” in the bitmap. Note that the size of the data block can be relatively large. For example, it may be larger than a typical sector in a hard disk drive. In other words, there may be a need for a further step that determines which part of the data block is actually being used, if the data block is relatively large. The values used in the bitmap can be other than just binary “0” and “1”. As another option, the bitmap can be used to store information about bad (i.e., corrupted) blocks. The bitmap can be created and managed in user space or in OS kernel space.
A typical data storage backup is a file containing data about the backup (e.g., time of creation, a backup number, backup type—incremental, full, pass through, etc.). The backup can contain a bitmap of the backed up data blocks and references to the data blocks within the backup file(s).
A backup file can be implemented in a form of archive. The backup file can also contain information about backed up storage media. For example, it can indicate which sector/partition (C:, D:, etc.) has been backed up. The backup file can contain a size of a partition, a size of a storage media and the actual backed up data blocks.
However, the major problem with the conventional backup schemas is that the backup file can be removed from the storage media. It can be accidentally removed by a user who created the backup, by another user or by an operating system. The backup file can also be corrupted, deleted or infected by malware or a virus.
All of these actions can ultimately result in loss of system functionality. The backup file can even be altered if it is hidden or write protected (by a password) from a file system, operating system or another application. The safe alternative for a backup storage can be an empty space available on the same storage that needs to be backed up. However, none of the conventional systems use this feature.
Accordingly, there is a need in the art for a system that can create a backup file that is hidden from a user, from a file system and from an operating system as well as from other applications. The backup file should only be visible by the backup/restore application that can modify the backup file (add new data blocks) and that can restore the system or data from the backup file.